<template>
  <div class="room-content">
    <Navbar :appTitle="appTitle" />
    <Search
      ref="topSearch"
      class="search"
      placeholder="入库单编号 | 物品名称"
      :isAdd="true"
      :isScreen="true"
      :isType="true"
      @onSearch="onSearch"
      @onScreen="onScreen"
      @newBuild="newBuild"
    >
    </Search>
    <search-tag ref="SearchTag" @getCategory="getCategory"></search-tag>
    <!--分页列表 -->
    <div class="listBox">
      <pageList
        ref="pageList"
        :checkedShow="false"
        :columns="columns"
        :minLen="3"
        :listUrl="listUrl"
        @handleList="handleList"
      >
        <div slot="foot" slot-scope="{ item }" class="operateBox">
          <div
            class="delBtn"
            @click.stop="handleDelete(item)"
            v-show="item.isArchived != 1"
          >
            删除
          </div>
          <div
            class="pubBtn"
            v-if="!item.sourceId"
            @click.stop="handleEdit(item)"
            v-show="item.isArchived != 1"
          >
            编辑
          </div>
          <div
            class="pubBtn"
            @click.stop="handleArchive(item)"
            v-show="item.isArchived != 1"
          >
            归档
          </div>
        </div>
      </pageList>
    </div>
  </div>
</template>
<script>
import Navbar from "@/components/navBar/navBar_right";
import Search from "@/components/search";
import SearchTag from "./SearchTag";
import pageList from "@/components/pageList";
import { deleteInWareHousing } from "@/api/inventoryOrder";
import { Dialog } from "vant";
import { recordArchive } from "@/api/removeAndinventory";
export default {
  name: "warehouseWarrant",
  components: {
    Navbar,
    Search,
    SearchTag,
    pageList,
  },
  data() {
    return {
      appTitle: "入库单",
      listUrl: "/inOutDocument/wmsWarehouseOperate/queryInWholeForPage", //列表接口
      columns: {
        titleKey: "taskCode", //标题
        content: [
          //内容
          {
            name: "业务类型",
            key: ["operateTaskTypeText"],
          },
          {
            name: "物品明细",
            key: ["goodsTypeNum"],
          },
          {
            name: "物品数量",
            key: ["goodsNumText"],
          },
        ],
      },
      keyword: "",
    };
  },
  beforeRouteLeave(to, from, next) {
    if (this.$refs.SearchTag.showSearchTag) {
      this.appTitle = this.$route.query.navTitle;
      this.$refs.SearchTag.showSearchTag = false;
      next(false);
    } else {
      next();
    }
  },
  mounted() {
    this.searchQuery();
  },
  methods: {
    // 搜索
    searchQuery(searchObj) {
      let params = {
        ...searchObj,
      };
      this.$refs.pageList.searchQuery(params);
    },
    // 入库单编号查询
    onSearch(v) {
      this.keyword = v;
      let searchObj = {
        keyword: this.keyword,
      };
      this.searchQuery(searchObj);
    },
    // 更多查询页面
    onScreen() {
      this.appTitle = "更多筛选";
      this.keyword = this.$refs.topSearch.value;
      this.$refs.SearchTag.showModal(this.keyword);
    },
    getCategory(sureObj) {
      this.appTitle = "入库单";
      this.keyword = sureObj.keyword;
      this.$refs.topSearch.value = sureObj.keyword;
      this.searchQuery(sureObj);
    },
    // 新建入库单
    newBuild() {
      this.$router.push({
        path: "/warehouseWarrantForm",
      });
    },
    // 删除
    handleDelete(e) {
      Dialog.confirm({
        title: "确定删除入库单吗？",
        message:
          "入库单删除后，库存会同步减少，入库明细会同步删除，删除后不可恢复。",
        confirmButtonColor: "#2b85e4",
      })
        .then(() => {
          deleteInWareHousing({ id: e.id }).then((res) => {
            if (res.success) {
              this.$toast("入库单删除成功");
              this.searchQuery();
            } else {
              this.$toast(res.message);
            }
          });
        })
        .catch(() => {});
    },
    // 编辑
    handleEdit(e) {
      this.$router.push({
        path: "/warehouseWarrantForm",
        query: {
          id: e.id,
        },
      });
    },
    // 归档
    handleArchive(v) {
      Dialog.confirm({
        title: "确定归档吗？",
        message: "归档后状态不可恢复",
        confirmButtonColor: "#2b85e4",
      })
        .then(() => {
          recordArchive({
            ids: v.id,
            entityCode: "WAREHOUSE_OPERATE_IN",
          }).then((res) => {
            if (res.success) {
              this.$toast(res.message);
              this.searchQuery();
            } else {
              this.$toast(res.message);
            }
          });
        })
        .catch(() => {});
    },
    //入库单详情
    handleList(id, item, type) {
      this.$router.push({
        path: "/warehouseWarrantDetail",
        query: {
          id: id,
        },
      });
    },
  },
};
</script>
<style lang="less" scoped>
.flex(@jc,@ai,@fd:row) {
  display: flex;
  justify-content: @jc;
  align-items: @ai;
  flex-direction: @fd;
}
.search {
  position: fixed;
  top: 93px;
  z-index: 98;
  width: 100%;
}
.listBox {
  margin-top: 120px;
  overflow-y: hidden;
}
.room-content {
  height: 100vh;
  overflow-y: scroll;
  .serach {
    height: 0.33rem;
    background: #f2f2f6;
    border-radius: 0rem;
    margin-bottom: 0.16rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    line-height: 0.33rem;
    padding: 0.1rem 0.12rem;
    .placeh {
      font-size: 0.16rem;
      font-family: PingFang SC;
      font-weight: 400;
      color: #888888;
      line-height: 0.23rem;
    }
    .icon {
      width: 0.15rem;
      height: 0.16rem;
    }
  }
}
.operateBox {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  box-sizing: border-box;
  padding-right: 3px;
  font-size: 28px;
  font-weight: 500;
  color: #1890ff;
}
.pubBtn {
  margin-right: 20px;
  &:nth-last-child(1) {
    margin-right: 0;
  }
}

.delBtn{
  color: red;
  margin-right: 20px;
}
</style>
